package app.modules.common.util.web;

import app.modules.common.dto.web.WebPageDTO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jasmine.framework.common.util.CheckUtil;
import jasmine.framework.web.entity.WebResult;
import liquibase.util.ObjectUtil;

/**
 * @author mh.z
 */
public class PageUtil {

    /**
     * 返回分页对象
     *
     * @param pageDTO
     * @return
     */
    public static Page getPage(WebPageDTO pageDTO) {
        CheckUtil.notNull(pageDTO, "pageDTO null");

        Long pageNumber = ObjectUtil.defaultIfNull(pageDTO.getPageNumber(), 1L);
        Long pageSize = ObjectUtil.defaultIfNull(pageDTO.getPageSize(), 10L);
        Page page = new Page(pageNumber, pageSize);

        return page;
    }

    /**
     * 返回结果对象
     *
     * @param data
     * @param page
     * @return
     * @param <T>
     */
    public static <T> WebResult<T> getResult(T data, Page page) {
        CheckUtil.notNull(page, "page null");

        WebResult result = WebResult.success(data);
        result.setTotal(page.getTotal());

        return result;
    }

}
